In this paper, a novel approach, Inforence, is proposed to isolate thesuspicious codes that likely contain faults. Inforence employs a featureselection method, based on mutual information, to identify those bug-relatedstatements that may cause the program to fail. Because the majority of aprogram faults may be revealed as undesired joint effect of the programstatements on each other and on program termination state, unlike thestate-of-the-art methods, Inforence tries to identify and select groups ofinterdependent statements which altogether may affect the program failure. Theinterdependence amongst the statements is measured according to their mutualeffect on each other and on the program termination state. To provide thecontext of failure, the selected bug-related statements are chained to eachother, considering the program static structure. Eventually, the resultantcause-effect chains are ranked according to their combined causal effect onprogram failure. To validate Inforence, the results of our experiments withseven sets of programs include Siemens suite, gzip, grep, sed, space, make andbash are presented. The experimental results are then compared with thoseprovided by different fault localization techniques for the both single-faultand multi-fault programs. The experimental results prove the outperformance ofthe proposed method compared to the state-of-the-art techniques.
展开▼